1. Technical Field
The present invention relates in general to the field of computer networks, and, in particular, to communication between a client device and a content server. Still more particularly, the present invention relates to an improved method and system for storing persistent state data in an intermediary proxy machine and for management of persistent state data for the client device.
2. Description of the Related Art
The Internet comprises a vast network of heterogenous computers and subnetworks all communicating together to allow for global exchange of information. The World Wide Web (WWW) is one of the more popular information services on the Internet. Access to the Internet is typically through an Internet Service Provider (ISP) using the World Wide Web (WWW), a system of Web content servers that support specially formatted documents, typically those in HyperText Markup Language (HTML). The WWW uses browser software to decipher HyperText links to other documents or files located on remote computers, all of which are connected to the Internet. Browsers provide a user-friendly interface that allows users to easily navigate from site to site or file to file around the Internet. Using a browser, a user can access information in the form of text, audio, video, still pictures and related multimedia stored on remote computers or content servers.
Described in a highly simplified manner, the Internet functions in the following manner. A client device, such as a desktop computer, laptop computer, personal digital assistant (PDA), onboard vehicle computer, cellular telephone, etc., sends a request for a Web site. A request from a desktop or laptop computer is typically formatted in the HyperText Transfer Protocol (HTTP) and sent through an Internet Service Provider (ISP). The ISP establishes a link to the Internet, which then passes the HTTP request to a content server. The request is forwarded on from the content server to the content provider, which is typically a web page addressed by a Uniform Resource Indicator (URI) such as a Uniform Resource Locator (URL).
The data response back to the client device from the content provider is routed through the content server, Internet, and ISP to the client device. The data response typically is in the language of HyperText Markup Language (HTML), the standard language for creating documents on the World Wide Web (WWW). HTML defines the structure and layout of a web document by using a variety of tag commands inserted in the document to specify how that document, or portion of the document, should be formatted.
Persistent state data (persistent client state data) is more commonly known as an Internet “cookie.” An Internet cookie is typically stored in a field of an HTTP protocol header message given to a web browser, such as Netscape Navigator or Internet Explorer by the web content server that delivers web pages from the website at the URL requested by the user. The protocol header may contain strings of characters (cookie content) that are inserted by a server application, supplied by an Internet Content Provider (ICP). When received by a client browser, these cookies are stored in the random access memory (RAM) or persistent storage device on a user's computer (or other client device) while the user is operating a browser (application program) to access web pages.
The web server, when returning a web site's content to a client, may also send a piece of state information which the client will store. Included in that state information object is a description of the range of URLs of which that state is valid. Any future HyperText Transfer Protocol (HTTP) requests made by the client which fall in that range will include a transmittal of the current value of the client state object data from the client back to the web content server. Data in a cookie may include the number of times a user has visited a web server or particular web page provided by the web server, the domain and path of a Web site, the date that the cookie will expire, the user/client name, plus other variables. Historically, these other variables have included information for a web server to customize information it provides to a user, and to facilitate on-line sales or services, including records of items in a so called “shopping basket,” credit card numbers for the user, preferred delivery methods, etc. Thus, the main purpose of passing persistent data in protocol headers such as cookies has been to enable a web server or Internet Content Provider (ICP) to gather and maintain information about a user/client. By setting one or more persistent cookies in the user's cookie file, the next time the user accesses a particular Web site, the ICP can know certain information about the user that will facilitate the user's productive use of the ICP's Web site.
Historically, cookies received by an ICP have been stored by a user agent (browser) in the RAM of the user's computer while the user is communicating with the ICP, and the cookies are then stored on the hard drive of the user's computer if the lifetime of the cookie is longer than the time the user spends at the ICP's Web site. Cookies stored on the computer are typically stored insecurely by the browser, and thus, people accessing the user's computer using dial up means, can easily access and decrypt the cookie information.
The above description assumes only a single client device. However, a variety of network connected devices may be used by the same user. These devices include desktop computers, laptop computers, set top boxes (Internet connection through standard television sets), Personal Digital Assistants (PDA's) and public kiosk computers, all of which may be connected through a Local Area Network (LAN) or Wide Area Network (WAN). In addition, cellular telephones may access the Internet through Public Switch Telephone Networks (PSTN), Integrated Services Digital Networks (ISDN) and similar telephone systems. If a user is using one device, such as his desktop computer, at a particular Web site, the cookies would be stored in that desktop and therefore not available to other user devices such as a PDA or laptop. The user must redefine cookies for the other devices, which may be inconsistent with the cookies initially set on the desktop computer.
It should therefore be apparent that there exists a need for a method that will allow for centralized management of cookies in an Internet environment for a specific user. It would further be desirable to devise a computer program product wherein such a method may be performed on a computer system. In addition, it would be desirable to devise an intermediary proxy machine having the ability to manipulate and control the cookies without passing them back to the client device.